package control;

import java.util.ArrayList;
import java.util.HashMap;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.swing.JOptionPane;
import nexus.adec.GestorEspacioDB;
import nexus.adec.EspacioCurso;
import nexus.adec.Usuario;
import nexus.adec.Widget;
import org.apache.tomcat.dbcp.jocl.JOCLContentHandler;
public class UserBean {
    private String id;
    private String password;
    private Usuario usuario;
    private boolean logeado;
    private String codigoCurso;
    private String saludo;
    private String nombreCompleto;
    public UserBean(){
        id="";
        password="";
        logeado=false;
    }
    public String login(){
         String msg = "fail";
         
         if(id==null||password==null||id.equals("")||password.equals("")){
             FacesMessage message = MessageFactory.createMessage(FacesMessage.SEVERITY_ERROR, "loginfale", "");
            msg="fail";
            FacesContext.getCurrentInstance().addMessage(null, message);
            
         }else if(GestorEspacioDB.getInstance().login(id, password)){
                    nombreCompleto=GestorEspacioDB.getInstance().obtenerUsuario(id).getNombreCompleto();
             msg="ok";
         }else{
             FacesMessage message = MessageFactory.createMessage(FacesMessage.SEVERITY_ERROR,"loginfale","");
             msg="fail";
             FacesContext.getCurrentInstance().addMessage(null, message);
         }
         return msg;
    }
    public String getNombreCompleto(){
        return nombreCompleto;
    }
    public String logout(){
        id="";
        password="";
        logeado=false;
        return "ok";
    }
    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Usuario getUsuario() {
        return usuario;
    }
    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }
    public boolean isLogeado() {
        return logeado;
    }
    public void setLogeado(boolean logeado) {
        this.logeado = logeado;
    }

    public String getCodigoCurso() {
        return codigoCurso;
    }

    public void setCodigoCurso(String codigoCurso) {
        this.codigoCurso = codigoCurso;
    }
    public ArrayList<EspacioCurso> getCursos() {
        ArrayList<EspacioCurso> cs = GestorEspacioDB.getInstance().listarCursos(id);
        return cs;
    }

    /**
     * @return the saludo
     */
    public String getSaludo() {
        Usuario usuario = GestorEspacioDB.getInstance().obtenerUsuario(id);
        saludo =usuario.getNombreCompleto();
        return saludo;
    }

    /**
     * @param saludo the saludo to set
     */
    public void setSaludo(String saludo) {
        this.saludo = saludo;
    }
    public boolean getEnableImagen(){
        return enabledWidget("mostrar_imagen_usuario");
    }
    public boolean getEnableGoogle(){
        return enabledWidget("google");
    }
    public boolean getEnableCalendario(){
        return enabledWidget("calendario");
    }
    public boolean getEnableBienvenida(){
        return !enabledWidget("bienvenida");
    }
    public boolean getEnableBuscarUsuario(){
        return enabledWidget("buscador_usuarios");
    }
    public String getMensajeBienvenida(){
        ArrayList<Widget> wid=GestorEspacioDB.getInstance().recuperarPreferencias(codigoCurso);
        HashMap<String,Widget> hwid=new HashMap<String,Widget>();
        for(Widget w : wid){
            hwid.put(w.getNombre(), w);
        }
        return hwid.get("bienvenida").getValor();
    }
    private boolean enabledWidget(String s){
        ArrayList<Widget> wid=GestorEspacioDB.getInstance().recuperarPreferencias(codigoCurso);
        HashMap<String,Widget> hwid=new HashMap<String,Widget>();
        String mostrar="";
        for(Widget w : wid){
            hwid.put(w.getNombre(), w);
            /*if(w == null) {
                mostrar +=w.getNombre()+"--";
            }*/
        }
        //JOptionPane.showMessageDialog(null,"el w es null: "+ mostrar);
        boolean respuesta;
        try {
            respuesta = hwid.get(s).getEstado()==0;
        } catch (Exception e) {
            respuesta = false;
        }
        return respuesta;
    }
    public String getMensaje(){
        return GestorEspacioDB.getInstance().obtenerMensajeBienvenida(codigoCurso);
    }
    public String getCreadorId(){
        String s=GestorEspacioDB.getInstance().obtenerCreador(codigoCurso);
        return s;
    }
    public String getNombreEspacio(){
        try{
        String n=GestorEspacioDB.getInstance().obtenerCurso(codigoCurso, id).getNombreEspacio();
        return n;
        }catch(Exception e){
            return "";
        }
    }
    public String getNombreDueño() {
        try {
            String codigoD = GestorEspacioDB.getInstance().obtenerCreador(codigoCurso);
            String nombreDueño = GestorEspacioDB.getInstance().obtenerUsuario(codigoD).getNombreCompleto();
            return nombreDueño;
        } catch(Exception e) {
            return "";
        }
    }
    public void borrarTodo() {
        JOptionPane.showMessageDialog(null, "entrol al modificar en UserBean yee");
    }
}
